home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / Shaders / RCShaders / RCWire.sl < prev    next >
Encoding:
Text File  |  1995-03-22  |  638 b   |  32 lines

  1. /* thaw
  2.  * Fri Jun 30 14:19:02 PDT 1989
  3.  *
  4.  * equally spaced wires in world space.
  5.  */
  6. #define HALF 0.5
  7.  
  8. surface 
  9. RCWire( float hwidth=0.0075,smult = 1.0,tmult = 1.0;)
  10.   {
  11.     float rim;
  12.     float s_mid,t_mid,mid;
  13.     color C;
  14.     float val;
  15.  
  16.     rim = 2*hwidth;
  17.  
  18.     C = Cs;
  19.  
  20.     s_mid = length(dPdu)*(HALF - abs(mod(s*smult,1.0) - HALF))/smult;
  21.     t_mid = length(dPdv)*(HALF - abs(mod(t*tmult,1.0) - HALF))/tmult;
  22.     mid = (s_mid > t_mid) ? t_mid : s_mid;
  23.                                             
  24.     Oi = 0.0;
  25.     if (mid < hwidth)
  26.       Oi = 1.0;
  27.     else if ( mid < (hwidth+rim))
  28.       Oi = (1.0-smoothstep(0.0,1.0,(mid-hwidth)/rim));
  29.  
  30.     Ci = Oi * C;
  31.   }
  32.